#ifndef __ARRAY_INT_H__
#define __ARRAY_INT_H__

typedef int ArrayElementType;
typedef struct {
	ArrayElementType* data;
	int last;
	int capacity;
}_Array, * Array;

#ifndef ERROR
#define ERROR -99999999
#endif

Array array_create(int capacity);
Array array_free(Array s);
Array array_push(Array s, ArrayElementType x);
ArrayElementType array_pop(Array s);
Array array_set(Array s, int i, ArrayElementType x);
ArrayElementType array_at(Array s, int i);
ArrayElementType* array_end(Array s);
int array_size(Array s);
int array_is_full(Array s);
int array_is_empty(Array s);

void print_array(Array s);

#endif //__ARRAY_INT_H__
